<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<!--一般会把js代码放在body末尾，因为执行脚本会拖慢页面显示速度-->
<script>
    // alert("hello,js!");
    //写入警告框
    // window.alert("!!!!!");
    // //写入HTML输出
    // document.writeln("......");
    // //写入浏览器控制台
    // console.log("66666")

    //使用var来定义变量 , 可以存放不同类型的值
    //使用var定义的变量是全局变量,允许重复声明变量
    var test = 20;
    // alert(test);
    test = "abc";
    // document.writeln(test);
    //let 定义的变量只在当前代码块中有效，且不允许重复定义
    let test1 = 30;
    // alert(test1);
    test1 = "aaa";
    // alert(typeof test1);
    // document.writeln(test1)
    //const 用来定义常量，且不能再次赋值
    const PI = 3.14;
    //5种原始类型
    /*
        number(整数、小数、NaN(Not a Number))
     */
    var age1 = 20;
    var age2 = "20";
    /*
        ==:判断前先判断类型是否一致，如果不一样则先进行类型转换，再去比较值
        ===:全等于
            判断其类型是否一样，不一样直接返回false，一样则再去比较值
     */
    alert(age1 == age2);
    /*
        类型转换：
            String：按照字符串的字面值，转为数字，如果字面值不是数字，则会转为NaN(Not a Number),一般使用parseInt
            Boolean：true转为1 false转为0
     */
    /*
        JavaScript通过函数function关键词进行定义 ，形式参数不需要类型。返回值也不需要定义类型
        可在函数内部直接使用return语句返回
     */
    // function add(a, b) {
    //     return a + b;
    // }
    //另一种函数的写法
    let result1 = function (a, b) {
        return a + b;
    }
    //调用函数
    let result2 = add(1, 2);
    /*REFERENCES
        java自定义对象
     */
    var person = {
        name : "zhangsan",
        age : 23,
        eat:function (){
            alert("吃饭")
        }
    }
    alert(person.name);
    alert(person.age);
    person.eat();
</script>
<!--也可以引入外部js文件,注意标签不可以自闭和-->
<!--<script src="js/demo.js"></script>-->
</body>
</html>
